Streaming data, such as video data, is often stored in memory on a frame by frame basis. In general, all frames for a particular application have equal amounts of data. However, if the application accesses multiple delayed frames, such as delayed frame F1 and delayed frame F2, it may require different amounts of data from F1 than from F2.
In one example, the input data of a video system has P dimensions. An application of the video system may require P bits of data from a delayed frame F1 but only M bits of data (it is understood here that M is less than P) from a delayed frame F2.
During a conventional storage phase, with regards to frame F1, it is stored using P bits of data. With regards to frame F2, it is also accessed using P bits of data although only M bits of data are needed by the application to represent frame F2. Similarly, during a conventional retrieval phase, with frame F1, all P bits are accessed. With regards to frame F2, all P bits are accessed as well even though only M bits of data are needed by the application to represent F2.
Clearly, the conventional approach to storing and retrieving data is ineffective as it fails to distinguish between different frames (e.g., F1 and F2). As a result, memory bandwidth utilization is not maximized. This inefficient use of memory bandwidth translates into performance degradation in video systems, such as motion vector processing systems and/or LCD display response-time compensation systems.